$(document).ready(function() {
    $('tr.project').click(function(){
        var currentLoc = location.href;
        currentLoc = currentLoc.split('&');
        location.href = currentLoc[0] +'&action=manageProject&pid=' + $(this).attr('pid');
    });
    $('#addTask').click(function() {
        location.href = location.href.replace('manageProject','addTask');
    });
    $('input.addUser').click(addUser);
    $('input.removeUser').click(removeUser);
    $('input.endTask').click(endTask);
    $('input.removeTask').click(removeTask);
    $('input.editTask').click(editTask);

    function editTask() {
        location.href = location.href.replace('manageProject','editTask') + '&ptid=' + $(this).parent().parent().attr('ptid');
    }
    
    function removeTask() {
        if(!confirm("Uwaga! Podczas usuwania zadania, usunięte zostaną również wszystkie rekordy pracy wykonanej nad tym zadaniem! Czy chcesz kontynuować?")) {
            return;
        }
        $.getJSON('modules/projects/projectActionsService.php', { action: 'removeTask', ptid: $(this).parent().parent().attr('ptid') } , removeTaskCallback);
    }

    function endTask() {
        if(!confirm("Czy na pewno chcesz zakończyć to zadanie?")) {
            return;
        }
        $.getJSON('modules/projects/projectActionsService.php', { action: 'endTask', ptid: $(this).parent().parent().attr('ptid') } , endTaskCallback);
    }
    function addUser() {
        location.href = location.href.replace('manageProject','addUser') + '&ptid=' + $(this).parent().parent().attr('ptid');
    }

    function removeUser() {
        if(!confirm("Czy na pewno chcesz usunąć przypisanego użytkownika od tego zadania?")) {
            return;
        }
        $.getJSON('modules/projects/projectActionsService.php', { action: 'removeUser', ptid: $(this).parent().parent().attr('ptid') } , removeUserCallback);
    }

    function removeUserCallback(json) {
        if(json.error == -1) {
            $('table.tasksList').find('tr.task').each(function(i,el) {
                el = $(el);
                if(el.attr('ptid') == json.ptid) {
                    var td = el.children('td')[1];
                    td = $(td);
                    td.html('<input type="button" class="addUser" value="Przypisz" />');
                    $('input.addUser').unbind('click');
                    $('input.addUser').click(addUser);
                }
            });
        } else {
            switch(json.error) {
                case 0:
                    alert('Twoja sesja wygasła! Przeloguj się i spróbuj ponownie.');
                break;
                case 1:
                    alert('Nie masz uprawnień do wprowadzania zmian w tej częściu modułu.');
                break;
                case 2:
                    alert('Niewłaściwy numer zadania. Odśwież stronę, aby sprawdzić, czy zadanie nie zostało usunięte.');
                break;
                case 3:
                    alert('Błąd podczas usuwania użytkownika.');
                break;
            }
        }
    }

    function endTaskCallback(json) {
        if(json.error == -1) {
            $('table.tasksList').find('tr.task').each(function(i,el) {
                el = $(el);
                if(el.attr('ptid') == json.ptid) {
                    var td = el.children('td')[4];
                    td = $(td);
                    td.text(json.dateDone);
                    var td2 = el.children('td')[6];
                    td2 = $(td2);
                    td2.html('<input class="removeTask" type="button" value="Usuń">');
                    $('input.removeTask').unbind('click');
                    $('input.removeTask').click(removeTask);
                }
            });
        } else {
            switch(json.error) {
                case 0:
                    alert('Twoja sesja wygasła! Przeloguj się i spróbuj ponownie.');
                break;
                case 1:
                    alert('Nie masz uprawnień do wprowadzania zmian w tej częściu modułu.');
                break;
                case 2:
                    alert('Niewłaściwy numer zadania. Odśwież stronę, aby sprawdzić, czy zadanie nie zostało usunięte.');
                break;
                case 4:
                    alert('Błąd podczas zakańczania zadania. Sprawdź, czy zadanie nie jest w trakcie wykonywania.');
                break;
            }
        } 
    }

    function removeTaskCallback(json) {
        if(json.error == -1) {
            $('table.tasksList').find('tr.task').each(function(i,el) {
                el = $(el);
                if(el.attr('ptid') == json.ptid) {
                    el.css('text-decoration','line-through');
                    el.fadeOut('2000');
                    setTimeout(function(){el.remove();},2000);
                }
            });
        } else {
            switch(json.error) {
                case 0:
                    alert('Twoja sesja wygasła! Przeloguj się i spróbuj ponownie.');
                break;
                case 1:
                    alert('Nie masz uprawnień do wprowadzania zmian w tej częściu modułu.');
                break;
                case 2:
                    alert('Niewłaściwy numer zadania. Odśwież stronę, aby sprawdzić, czy zadanie nie zostało usunięte.');
                break;
                case 5:
                    alert('Błąd podczas usuwania zadania. Sprawdź, czy zadanie nie jest w trakcie wykonywania.');
                break;
            }
        } 
    }

    $("#user").autocomplete({
        source: function(query, add){
            $.getJSON("modules/administration/userService.php", query, function(data) {
                var suggestions = [];
                $.each(data, function(i,val) {
                    suggestions.push(val);
                });
                add(suggestions);
            });
        } ,
        minLength: 3,

        select:
        function(e, ui) {
            $("#uid").val(ui.item.uid);
        }
    });
});
